home *** CD-ROM | disk | FTP | other *** search
/ PC Master 5 / PC MASTER 5.iso / INTERNET / KIT / WIN95 / MSIE30.EXE / ieakjava.exe / classr.exe / com / ms / directX / dSoundResource.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-01-31  |  2.0 KB  |  55 lines

  1. package com.ms.directX;
  2.  
  3. public class dSoundResource implements IdSoundResource {
  4.    public native void LoadWaveResource(int var1, DSResourceDesc var2, byte[] var3);
  5.  
  6.    public WaveFormatEx LoadWaveResource(int var1, DSResourceDesc var2) {
  7.       byte[] var3 = new byte[50];
  8.       this.LoadWaveResource(var1, var2, var3);
  9.       return this.MakeWaveFormat(var3);
  10.    }
  11.  
  12.    public native void LoadWaveFile(String var1, DSResourceDesc var2, byte[] var3);
  13.  
  14.    public WaveFormatEx LoadWaveFile(String var1, DSResourceDesc var2) {
  15.       System.out.println("Entered LoadWaveFile");
  16.       byte[] var3 = new byte[50];
  17.       System.out.println("Allocated byte buffer");
  18.       this.LoadWaveFile(var1, var2, var3);
  19.       System.out.println("Called COM ");
  20.       return this.MakeWaveFormat(var3);
  21.    }
  22.  
  23.    public native void ReadBuffer(int var1, int var2, int var3, DSResourceDesc var4, byte[] var5, int var6);
  24.  
  25.    private int getValFromBuff(byte[] var1, int var2, int var3) {
  26.       int var4 = 0;
  27.       var4 = var1[var2] + var1[var2 + 1] * 256;
  28.       if (var3 > 2) {
  29.          var4 += var1[var2 + 2] + var1[var2 + 3] * 256 << 16;
  30.       }
  31.  
  32.       return var4;
  33.    }
  34.  
  35.    private WaveFormatEx MakeWaveFormat(byte[] var1) {
  36.       System.out.println("Entered MakeWaveFormat");
  37.       WaveFormatEx var2 = new WaveFormatEx();
  38.       System.out.println("Created WaveFormatEx");
  39.       var2.wFormatTag = this.getValFromBuff(var1, 0, 2);
  40.       var2.nChannels = this.getValFromBuff(var1, 2, 2);
  41.       var2.nSamplesPerSec = this.getValFromBuff(var1, 4, 4);
  42.       var2.nAvgBytesPerSec = this.getValFromBuff(var1, 8, 4);
  43.       var2.nBlockAlign = this.getValFromBuff(var1, 12, 2);
  44.       var2.wBitsPerSample = this.getValFromBuff(var1, 14, 2);
  45.       var2.cbSize = this.getValFromBuff(var1, 16, 2);
  46.       var2.extra = new byte[var2.cbSize];
  47.  
  48.       for(int var3 = 0; var3 < var2.cbSize; ++var3) {
  49.          var2.extra[var3] = var1[var3 + 18];
  50.       }
  51.  
  52.       return var2;
  53.    }
  54. }
  55.